
#ifndef DESIGN_PATTERNS_PROTOTYPE_SHAPE_H
#define DESIGN_PATTERNS_PROTOTYPE_SHAPE_H

#include <string>

class Shape
{
protected:
  std::string color_;

public:
  explicit Shape(std::string c = "黑色");

  Shape(const Shape& other);

  virtual std::string get_color() const;

  virtual void set_color(std::string c);

  virtual void Draw() = 0;

  virtual Shape* Clone() = 0;

  virtual ~Shape() = default;
};

#endif //DESIGN_PATTERNS_PROTOTYPE_SHAPE_H
